home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 May / EnigmA AMIGA RUN 18 (1997)(G.R. Edizioni)(IT)[!][issue 1997-05][EAR-CD II].iso / earcd / misc / emu / arosdev.lha / AROS / workbench / libs / icon / matchtoolvalue.c < prev    next >
C/C++ Source or Header  |  1997-02-03  |  2KB  |  92 lines

  1. /*
  2.     (C) 1995-96 AROS - The Amiga Replacement OS
  3.     $Id: matchtoolvalue.c,v 1.1 1997/02/03 13:34:33 digulla Exp $
  4.  
  5.     Desc:
  6.     Lang: english
  7. */
  8. #include <proto/utility.h>
  9. #include "icon_intern.h"
  10.  
  11. /*****************************************************************************
  12.  
  13.     NAME */
  14. #include <proto/icon.h>
  15.  
  16.     AROS_LH2(BOOL, MatchToolValue,
  17.  
  18. /*  SYNOPSIS */
  19.     AROS_LHA(UBYTE *, typeString, A0),
  20.     AROS_LHA(UBYTE *, value, A1),
  21.  
  22. /*  LOCATION */
  23.     struct Library *, IconBase, 17, Icon)
  24.  
  25. /*  FUNCTION
  26.     Checks if the given tooltype has the supplied value.
  27.  
  28.     INPUTS
  29.     typeString - string containing the tooltype.
  30.     value - the value to match for.
  31.  
  32.     RESULT
  33.     TRUE if match, else FALSE.
  34.  
  35.     NOTES
  36.  
  37.     EXAMPLE
  38.  
  39.     BUGS
  40.  
  41.     SEE ALSO
  42.  
  43.     INTERNALS
  44.  
  45.     HISTORY
  46.  
  47. *****************************************************************************/
  48. {
  49.     AROS_LIBFUNC_INIT
  50.     AROS_LIBBASE_EXT_DECL(struct Library *,IconBase)
  51.     LONG    value_len;
  52.     UBYTE   c;
  53.     UBYTE * str;
  54.  
  55.     /* Check if value has a bar in it */
  56.     str = value;
  57.  
  58.     while(*str)
  59.     {
  60.     if (*str++=='|')
  61.         return (FALSE);
  62.     }
  63.  
  64.     /* Compare loop */
  65.     while (*typeString)
  66.     {
  67.     /* Are they alike ? */
  68.     value_len = strlen (value);
  69.  
  70.     if (!Strnicmp (typeString, value, value_len))
  71.     {
  72.         /* Check that we have matched the *whole* word in typeString with value */
  73.         c = *(typeString + value_len);
  74.  
  75.         if (c == '|' || c == 0)
  76.         return (TRUE);
  77.     }
  78.  
  79.  
  80.     /* Goto next entry in typeString */
  81.     while (c = *typeString, !((c == '|') || (c == 0)))
  82.         typeString++;
  83.  
  84.     /* If we have a "|", skip it */
  85.     if (*typeString == '|')
  86.         typeString ++;
  87.     }
  88.  
  89.     return FALSE;
  90.     AROS_LIBFUNC_EXIT
  91. } /* MatchToolValue */
  92.